﻿using System;

namespace Garfield.Core.Runtime
{
    public interface IExtensionRegistry
    {
        IExtensionPoint<ExtensionType> GetExtensions<ExtensionType>(Plugin.ExtensionPoint<ExtensionType> extensionPoint);
        IExtensionPoint<ExtensionIdentifierType, ExtensionType> GetExtensions<ExtensionIdentifierType, ExtensionType>(Plugin.ExtensionPoint<ExtensionIdentifierType, ExtensionType> extensionPoint);

        IExtensionPoint<Type, object> GetExtensions(Plugin.ExtensionPoint<Api, Implementation> extensionPoint);
    }
}
